package edu.ccut.saturn.component;

import java.util.Collection;
import java.util.Set;

/**
 * 获得bundle中的工作流组件信息
 * 
 * @author 温建
 * @version 1.0 2008.9.04
 *
 */
public interface IBundleWorkFlowInfo {

	/**
	 * Get bundle symbolic name
	 * 
	 * @return
	 */
	public String getBundleSymbolicName();
	
	/**
	 * Get all workflow information in this bundle
	 * 
	 * @return
	 */
	public Collection<IWorkFlowInfo> getWorkFlowInfos();

	/**
	 * Get all workflow key set
	 * 
	 * @return
	 */
	public Set<String> getWorkFlowKeys();

	/**
	 * Get workflow information by fullkey
	 * 
	 * @param fullKey
	 * @return
	 */
	public IWorkFlowInfo getWorkFlowInfo(String fullKey);

	/**
	 * Add a workflow information
	 * 
	 * @param workFlowInfo
	 * @throws SaturnComponentException
	 */
	public void addWorkFlowInfo(IWorkFlowInfo workFlowInfo)
			throws SaturnComponentException;

	/**
	 * Add workflow information List
	 * 
	 * @param workFlowInfos
	 * @throws SaturnComponentException
	 */
	public void addWorkflowInfos(Collection<IWorkFlowInfo> workFloInfos)
			throws SaturnComponentException;
}
